home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 013 / zapdir.arc / ZAPDIR.ASM < prev    next >
Encoding:
Assembly Source File  |  1980-01-01  |  1.9 KB  |  66 lines

  1.         TITLE    ZAP DIRECTORIES
  2.                 SUBTTL    by Scott Pakin
  3.  
  4. CODESEG        SEGMENT PARA PUBLIC 'CODE'
  5.         ASSUME    CS:CODESEG,DS:CODESEG,ES:CODESEG
  6.                 ORG    0100H        ;MAKE THIS A .COM FILE
  7.  
  8. START        PROC     FAR        ;PROGRAM STARTS HERE
  9.                 JMP    OVER_DATA    ;JUMP OVER DATA
  10.  
  11. MYTITLE        DB    127,127,127    ;PUT MY NAME IN PROGRAM
  12.         DB    13,'      ',13,10
  13.                 DB    'ZAPDIR',13,10
  14.                 DB    'by Scott Pakin',13,10,10
  15.                 DB    26
  16.  
  17. FCB        DB    0FFH        ;EXTENDED FCB
  18.         DB    5 DUP (0)
  19.                 DB    10H        ;DIRECTORY
  20.                 DB    0        ;DEFAULT DRIVE
  21. TARGET        DB    11 DUP (' ')    ;DIRECTORY TO ERASE
  22.         DB    32 DUP (0)
  23.  
  24. NONAME        DB    13,10,'E r r o r -- You must provide a directory '
  25.         DB    'to completely remove!',13,10,'$'
  26. ERROR        DB    13,10,'E r r o r -- Could not erase directory.'
  27.         DB    13,10,'$'
  28.  
  29. OVER_DATA:      CLD            ;DIRECTION = FORWARDS
  30.         MOV    SI,80H        ;POINT TO COMMAND LINE
  31.                 MOV    CL,[SI]        ;GET NUMBER OF CHARACTERS TYPED
  32.                 OR    CL,CL        ;ZERO?
  33.                 JNZ    GETTARGET    ;NO -- GET TARGET DIRECTROY
  34.  
  35.         LEA    DX,NONAME    ;DISPLAY ERROR MESSAGE
  36.                 MOV    AH,9
  37.                 INT    21H
  38.                 MOV    AL,1        ;ERRORLEVEL 1
  39.                 JMP    QUIT        ;EXIT PROGRAM
  40.  
  41. GETTARGET:     XOR    CH,CH        ;GET COUNT IN CX
  42.         SUB    CL,1        ;FORGET CR
  43.                 MOV    SI,82H        ;READ FROM COMMAND LINE
  44.                 LEA    DI,TARGET    ;WRITE TO TARGET
  45.                 REP    MOVSB
  46.  
  47. DELETE:        LEA    DX,FCB        ;ERASE DIRECTORY
  48.         MOV    AH,13H
  49.                 INT    21H
  50.                 OR    AL,AL        ;ANY ERRORS?
  51.                 JZ    END        ;NO -- END
  52.  
  53.         LEA    DX,ERROR    ;GIVE ERROR MESSAGE
  54.                 MOV    AH,9
  55.                 INT    21H
  56.                 MOV    AL,1        ;ERRORLEVEL 1
  57.                 JMP    QUIT
  58.  
  59. END:        XOR    AL,AL        ;RETURN TO DOS
  60. QUIT:        MOV    AH,4CH        ;PROVIDING AN ERRORLEVEL VALUE
  61.         INT    21H
  62.  
  63. START        ENDP
  64. CODESEG        ENDS
  65.         END    START        ;GO TO START FIRST
  66.